home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
CEOM_300.ZIP
/
CEOM.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-10-10
|
10KB
|
679 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Integer INTEGER001
Integer TINTEGER002(2)
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING018
String STRING019
String STRING020
String STRING022
String STRING023
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003(Integer INTEGER004, Integer INTEGER005)
Declare Procedure PROC004()
Declare Procedure PROC005(Integer INTEGER003)
Declare Procedure PROC006(Boolean BOOLEAN003)
Declare Procedure PROC007()
Declare Procedure PROC008()
Declare Procedure PROC009(String STRING015, String STRING016)
Declare Procedure PROC010()
Declare Procedure PROC011(String STRING017)
Declare Procedure PROC012()
;------------------------------------------------------------------------------
If (AnsiOn()) Goto LABEL001
DefColor
Print "[@TIMELEFT@/@TIMELIMIT@]|[#@CURMSGNUM@]|[+/-] (RE)ply : (Enter)=Continue"
End
:LABEL001
STRING002 = TokenStr()
Tokenize STRING002
GetToken TINTEGER002(1)
GetToken TINTEGER002(2)
BOOLEAN001 = 1
BOOLEAN002 = 0
If (InStr(STRING002, "/PLC") <> 0) BOOLEAN002 = 1
PROC008()
If (BOOLEAN002) PROC007()
If (InStr(STRING002, "/NH") <> 0) BOOLEAN001 = 0
INTEGER001 = 1
STRING012 = ""
STRING001 = ""
StartDisp 1
KbdChkOn
PROC001()
STRING003 = String(GetX())
DefColor
While (STRING012 <> Chr(13)) Do
STRING012 = Inkey()
If (Abort()) ResetDisp
If ((Min(Time()) % 20 == 0) && (Sec(Time()) < 2)) PROC004()
If ((((Upper(STRING012) == " ") || (Upper(STRING012) == "RIGHT")) || (Upper(STRING012) == "UP")) || (Upper(STRING012) == "PGUP")) Then
If (INTEGER001 == 9) Then
PROC003(9, 1)
Goto LABEL002
Endif
PROC003(INTEGER001, INTEGER001 + 1)
:LABEL002
Continue
Endif
If (((Upper(STRING012) == "LEFT") || (Upper(STRING012) == "DOWN")) || (Upper(STRING012) == "PGDN")) Then
If (INTEGER001 == 1) Then
PROC003(1, 9)
Goto LABEL003
Endif
PROC003(INTEGER001, INTEGER001 - 1)
:LABEL003
Continue
Endif
If (Upper(STRING012) == "C") Then
If (BOOLEAN001) Goto LABEL004
PROC003(INTEGER001, 1)
STRING001 = STRING001 + STRING012
Goto LABEL005
:LABEL004
PROC005(1)
:LABEL005
Continue
Endif
If (Upper(STRING012) == "D") Then
If (BOOLEAN001) Goto LABEL006
PROC003(INTEGER001, 2)
STRING001 = STRING001 + STRING012
Goto LABEL007
:LABEL006
PROC005(2)
:LABEL007
Continue
Endif
If (Upper(STRING012) == "J") Then
If (BOOLEAN001) Goto LABEL008
PROC003(INTEGER001, 3)
STRING001 = STRING001 + STRING012
Goto LABEL009
:LABEL008
PROC005(3)
:LABEL009
Continue
Endif
If (Upper(STRING012) == "K") Then
If (BOOLEAN001) Goto LABEL010
PROC003(INTEGER001, 4)
STRING001 = STRING001 + STRING012
Goto LABEL011
:LABEL010
PROC005(4)
:LABEL011
Continue
Endif
If (Upper(STRING012) == "N") Then
If (BOOLEAN001) Goto LABEL012
PROC003(INTEGER001, 5)
STRING001 = STRING001 + STRING012
Goto LABEL013
:LABEL012
PROC005(5)
:LABEL013
Continue
Endif
If (Upper(STRING012) == "Q") Then
If (BOOLEAN001) Goto LABEL014
PROC003(INTEGER001, 6)
STRING001 = STRING001 + STRING012
Goto LABEL015
:LABEL014
PROC005(6)
:LABEL015
Continue
Endif
If (Upper(STRING012) == "R") Then
If (BOOLEAN001) Goto LABEL016
PROC003(INTEGER001, 7)
STRING001 = STRING001 + STRING012
Goto LABEL017
:LABEL016
PROC005(7)
:LABEL017
Continue
Endif
If (Upper(STRING012) == "S") Then
If (BOOLEAN001) Goto LABEL018
PROC003(INTEGER001, 8)
STRING001 = STRING001 + STRING012
Goto LABEL019
:LABEL018
PROC005(8)
:LABEL019
Continue
Endif
If (Upper(STRING012) == "*") Then
If (BOOLEAN001) Goto LABEL020
PROC003(INTEGER001, 9)
STRING001 = STRING001 + STRING012
Goto LABEL021
:LABEL020
PROC005(9)
:LABEL021
Continue
Endif
If ((Upper(STRING012) == "+") || (Upper(STRING012) == "]")) Then
PROC005(10)
Continue
Endif
If ((Upper(STRING012) == "-") || (Upper(STRING012) == "[")) Then
PROC005(11)
Continue
Endif
If (Upper(STRING012) == "I") Then
PROC004()
Continue
Endif
If ((STRING012 <> Chr(13)) && (STRING012 <> "")) Then
PROC003(INTEGER001, 9)
STRING004 = STRING012
DefColor
PROC006(1)
Endif
EndWhile
PROC005(INTEGER001)
End
;------------------------------------------------------------------------------
Procedure PROC005(Integer INTEGER003)
DefColor
Select Case (INTEGER003)
Case 1
Print "Continue"
Newline
KbdStuff Chr(13)
Case 2
Print "Download"
Newline
KbdStuff "D"
Case 3
Print "Jump to the Next Conf"
Newline
KbdStuff "JUMP"
Case 4
Print "Kill Message"
Newline
KbdStuff "K"
Case 5
Print "No More (Quit)"
Newline
KbdStuff "N"
Case 6
Print "QuickScan"
Newline
KbdStuff "Q"
Case 8
Print "Skip (Set LMRP)"
Newline
KbdStuff "SKIP"
Case 10
PrintLn "Next"
Newline
KbdStuff "+"
Case 11
PrintLn "Back"
Newline
KbdStuff "-"
Case 9
PROC006(0)
Case 7
Print "Reply to Message"
Newline
If (Exist(PPEPath() + "CEOM.RE")) Then
PROC010()
Goto LABEL022
Endif
KbdStuff "RE"
End Select
:LABEL022
PROC002()
EndProc
;------------------------------------------------------------------------------
Procedure PROC006(Boolean BOOLEAN003)
If (BOOLEAN003 == 1) Goto LABEL023
PROC003(INTEGER001, 9)
DefColor
STRING004 = ""
STRING005 = ""
While (STRING004 <> Chr(13)) Do
STRING004 = Inkey()
:LABEL023
If (Len(STRING001) <> 0) Then
DefColor
Print STRING001
STRING005 = STRING001
STRING001 = ""
Endif
If (InStr(Mask_Ascii(), STRING004) <> 0) Then
Print STRING004
STRING005 = STRING005 + STRING004
Continue
Endif
If ((Upper(STRING004) == Chr(8)) || (Upper(STRING004) == Chr(127))) Then
If (Len(STRING005) <> 0) Then
Print Chr(8) + " " + Chr(8)
STRING005 = Left(STRING005, Len(STRING005) - 1)
Endif
Continue
Endif
If (Upper(STRING004) == Chr(27)) Then
If (Len(STRING005) <> 0) Then
Backup Len(STRING005)
ClrEol
STRING005 = ""
Endif
Endif
EndWhile
DefColor
StartDisp 2
If ((Upper(STRING005) == "H") || (STRING005 == "?")) Then
Print "Help"
KbdStuff "HELP"
PROC002()
ElseIf (Len(STRING005) <= 0) Then
Print "Continue"
Newline
KbdStuff Chr(13)
Else
Newline
KbdStuff STRING005
STRING005 = ""
Endif
PROC002()
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
DefColor
StartDisp 2
End
EndProc
;------------------------------------------------------------------------------
Procedure PROC003(Integer INTEGER004, Integer INTEGER005)
Print "A"
Backup 80
Select Case (INTEGER004)
Case 1
Forward 2
PROC009("C", "ontinue")
Case 2
Forward 13
PROC009("D", "ownload")
Case 3
Forward 24
PROC009("J", "ump")
Case 4
Forward 31
PROC009("K", "ill")
Case 5
Forward 38
PROC009("N", "o More")
Case 6
Forward 48
PROC009("Q", "Scan")
Case 7
Forward 56
PROC009("R", "eply")
Case 8
Forward 64
PROC009("S", "kip")
Case 9
Forward 71
PROC009("*", "CMD")
End Select
Backup 80
Select Case (INTEGER005)
Case 1
Forward 2
PROC011("Continue")
Case 2
Forward 13
PROC011("Download")
Case 3
Forward 24
PROC011("Jump")
Case 4
Forward 31
PROC011("Kill")
Case 5
Forward 38
PROC011("No More")
Case 6
Forward 48
PROC011("QScan")
Case 7
Forward 56
PROC011("Reply")
Case 8
Forward 64
PROC011("Skip")
Case 9
Forward 71
PROC011("*CMD")
End Select
INTEGER001 = INTEGER005
Backup 80
Print "B"
Forward STRING003 - 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC008()
If ((TINTEGER002(1) >= 1) && (TINTEGER002(1) <= 6)) Then
If (TINTEGER002(2) == 2) Then
STRING006 = "@X" + String(I2S(TINTEGER002(1) + 8, 16)) + "F"
STRING011 = "@X0" + String(TINTEGER002(1))
STRING009 = "@X" + String(I2S(TINTEGER002(1), 16)) + String(I2S(TINTEGER002(1) + 8, 16))
STRING010 = "@X" + String(I2S(TINTEGER002(1), 16)) + "F"
Else
STRING006 = "@X" + String(I2S(TINTEGER002(1), 16)) + "F"
Endif
STRING008 = "@X0" + String(TINTEGER002(1))
STRING007 = "@X0" + String(I2S(TINTEGER002(1) + 8, 16))
Else
If (TINTEGER002(2) == 2) Then
STRING006 = "@XF0"
STRING009 = "@X78"
STRING010 = "@X7F"
STRING007 = "@X08"
STRING011 = "@X07"
Else
STRING006 = "@X7F"
STRING007 = "@X07"
Endif
STRING008 = "@X08"
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
String STRING013
String STRING014
STRING013 = Chr(67) + Chr(69) + Chr(79) + Chr(77)
STRING014 = Chr(118) + Chr(51) + Chr(46) + Chr(48) + Chr(48)
Print STRING008 + Space(64 - String(STRING003)) + Chr(91) + Chr(77) + Chr(83) + Chr(93) + Space(1) + STRING013 + Space(1) + STRING014
Backup 79 - STRING003
DefColor
EndProc
;------------------------------------------------------------------------------
Procedure PROC009(String STRING015, String STRING016)
If (TINTEGER002(2) == 2) Then
Forward 1
Print STRING010 + STRING015 + STRING009 + STRING016
Else
Print "@X0F" + " " + STRING015 + STRING007 + STRING016 + " "
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC011(String STRING017)
If (TINTEGER002(2) == 2) Then
Forward 1
Print STRING006 + Upper(STRING017)
Else
Print STRING006 + " " + STRING017 + " "
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC012()
KbdChkOn
Print STRING008 + "-- @X0FPaused " + STRING008 + "--"
While (Inkey() == "") Do
If (Abort()) ResetDisp
EndWhile
Backup 80
ClrEol
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
String STRING018
String STRING019
GetUser
STRING018 = String(ScrText(1, 1, 20, 0))
STRING019 = String(GetY())
If (OnLocal() && U_Cls) Then
If (TINTEGER002(2) == 2) Then
If ((STRING019 > 21) && ((InStr(STRING018, "To: ") <> 0) || (InStr(STRING018, "Date: ") <> 0))) PROC012()
Else
If ((STRING019 > 20) && (((InStr(STRING018, "To: ") <> 0) || (InStr(STRING018, "From: ") <> 0)) || (InStr(STRING018, "Date: ") <> 0))) PROC012()
Endif
ElseIf (U_Cls) Then
If (TINTEGER002(2) == 2) Then
If (((U_PageLen == 23) && (STRING019 > 22)) && ((InStr(STRING018, "To: ") <> 0) || (InStr(STRING018, "Date: ") <> 0))) Then
PROC012()
Goto LABEL024
Endif
If (((U_PageLen == 24) && (STRING019 > 22)) && ((InStr(STRING018, "To: ") <> 0) || (InStr(STRING018, "From: ") <> 0))) Then
PROC012()
Endif
:LABEL024
Goto LABEL025
Endif
If (((U_PageLen == 23) && (STRING019 > 21)) && (((InStr(STRING018, "To: ") <> 0) || (InStr(STRING018, "From: ") <> 0)) || (InStr(STRING018, "Date: ") <> 0))) Then
PROC012()
Goto LABEL025
Endif
If (((U_PageLen == 24) && (STRING019 > 22)) && (((InStr(STRING018, "To: ") <> 0) || (InStr(STRING018, "From: ") <> 0)) || (InStr(STRING018, "Date: ") <> 0))) Then
PROC012()
Endif
Endif
:LABEL025
EndProc
;------------------------------------------------------------------------------
Procedure PROC010()
String STRING020
STRING020 = ReadLine(PPEPath() + "CEOM.RE", 1)
FClose -1
STRING020 = ReplaceStr(STRING020, "@NUM@", PCBMac("@CURMSGNUM@"))
Tokenize STRING020
Call STRING020
KbdStuff "/"
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING021
If (TINTEGER002(2) == 2) Then
STRING021 = STRING011 + "▌" + STRING007 + "█" + STRING011 + "▐" + STRING010
Print STRING007 + "▓█" + STRING011 + "▐" + STRING006 + "CONTINUE" + STRING021 + "D" + STRING009 + "ownload" + STRING021 + "J" + STRING009 + "ump" + STRING021 + "K" + STRING009 + "ill" + STRING021 + "N" + STRING009 + "o More" + STRING021 + "Q" + STRING009 + "Scan" + STRING021 + "R" + STRING009 + "eply" + STRING021 + "S" + STRING009 + "kip" + STRING021 + "*" + STRING009 + "CMD" + STRING011
PrintLn "▌" + STRING007 + "█▓"
PrintLn STRING008 + "═══════════════════════════════════════════════════════════════════════════════"
Print STRING008 + "[@X0F@TIMELEFT@" + STRING008 + "/@X0F@TIMELIMIT@" + STRING008 + "]|[" + STRING007 + "#@X0F@CURMSGNUM@" + STRING008 + "]|[@X0F+" + STRING008 + "/@X0F-" + STRING008 + "]@X0F End of Message" + STRING008 + ": "
Else
STRING021 = STRING007 + "│ " + "@X0F"
PrintLn "@X0F╒╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╕"
PrintLn STRING007 + "├┤" + STRING006 + " Continue " + STRING021 + "D" + STRING007 + "ownload " + STRING021 + "J" + STRING007 + "ump " + STRING021 + "K" + STRING007 + "ill " + STRING021 + "N" + STRING007 + "o More " + STRING021 + "Q" + STRING007 + "Scan " + STRING021 + "R" + STRING007 + "eply " + STRING021 + "S" + STRING007 + "kip " + STRING021 + "*" + STRING007 + "CMD " + STRING007 + "├┤"
PrintLn STRING008 + "╞╪╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╛"
Print STRING008 + "└┴ [@X0F@TIMELEFT@" + STRING008 + "/@X0F@TIMELIMIT@" + STRING008 + "]|[" + STRING007 + "#@X0F@CURMSGNUM@" + STRING008 + "]|[@X0F+" + STRING008 + "/@X0F-" + STRING008 + "]@X0F End of Message" + STRING008 + ": "
Endif
EndProc
STRING022 = "If you have suggestions or requests for permanent or optional features,"
STRING023 = "please send mail to <mslasher@io.org>. - Rob Hunter / CEOM (c)1993-94 "
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 2 ClrEol
; 154 Goto
; 55 Let
; 25 Print
; 7 PrintLn
; 91 If
; 1 FClose
; 2 ResetDisp
; 3 StartDisp
; 1 GetUser
; 9 DefColor
; 12 Newline
; 2 Tokenize
; 2 GetToken
; 14 KbdStuff
; 1 Call
; 2 KbdChkOn
; 6 Backup
; 21 Forward
; 12 EndProc
;
;
; ■ Functions used :
;
; 1 -
; 1 %
; 177 +
; 5 -
; 71 ==
; 25 <>
; 1 <
; 2 <=
; 6 >
; 1 >=
; 82 !
; 14 &&
; 18 ||
; 6 Len(
; 26 Upper()
; 1 Left()
; 3 Space()
; 23 Chr()
; 18 InStr()
; 2 Abort()
; 2 Time()
; 1 Min()
; 1 Sec()
; 3 Inkey()
; 12 String()
; 1 Mask_Ascii()
; 2 PPEPath()
; 1 ReadLine()
; 1 OnLocal()
; 1 Exist()
; 6 I2S()
; 1 TokenStr()
; 1 AnsiOn()
; 1 GetX()
; 1 GetY()
; 1 ScrText()
; 1 ReplaceStr()
; 1 PCBMac()
;
;------------------------------------------------------------------------------
;
; Analysis flags : C
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 3 While/EndWhile
; 40 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------